TPTP Problem File: DAT179^1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : DAT179^1 : TPTP v8.2.0. Released v7.0.0.
% Domain : Data Structures
% Problem : Lazy lists II 596
% Version : [Bla16] axioms : Especial.
% English :
% Refs : [Fri04] Friedrich (2004), Lazy Lists II
% : [RB15] Reynolds & Blanchette (2015), A Decision Procedure for
% : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source : [Bla16]
% Names : llist2__596.p [Bla16]
% Status : Theorem
% Rating : 0.67 v8.1.0, 0.50 v7.5.0, 0.33 v7.2.0, 0.25 v7.1.0
% Syntax : Number of formulae : 360 ( 141 unt; 66 typ; 0 def)
% Number of atoms : 701 ( 292 equ; 0 cnn)
% Maximal formula atoms : 13 ( 2 avg)
% Number of connectives : 2979 ( 69 ~; 11 |; 36 &;2544 @)
% ( 0 <=>; 319 =>; 0 <=; 0 <~>)
% Maximal formula depth : 19 ( 6 avg)
% Number of types : 5 ( 4 usr)
% Number of type conns : 219 ( 219 >; 0 *; 0 +; 0 <<)
% Number of symbols : 65 ( 62 usr; 7 con; 0-5 aty)
% Number of variables : 866 ( 29 ^; 760 !; 21 ?; 866 :)
% ( 56 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_THM_EQU_NAR
% Comments : This file was generated by Isabelle (most likely Sledgehammer)
% 2016-07-13 14:47:34.314
%------------------------------------------------------------------------------
%----Could-be-implicit typings (8)
thf(ty_t_Coinductive__List_Ollist,type,
coinductive_llist: $tType > $tType ).
thf(ty_t_Option_Ooption,type,
option: $tType > $tType ).
thf(ty_t_Set_Oset,type,
set: $tType > $tType ).
thf(ty_t_Num_Onum,type,
num: $tType ).
thf(ty_t_Nat_Onat,type,
nat: $tType ).
thf(ty_t_Int_Oint,type,
int: $tType ).
thf(ty_t_itself,type,
itself: $tType > $tType ).
thf(ty_tf_a,type,
a: $tType ).
%----Explicit typings (58)
thf(sy_cl_HOL_Otype,type,
type:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Oord,type,
ord:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Oorder,type,
order:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Osemiring__1,type,
semiring_1:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Olinorder,type,
linorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Orderings_Opreorder,type,
preorder:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Nat_Osemiring__char__0,type,
semiring_char_0:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Rings_Olinordered__semidom,type,
linordered_semidom:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Olinordered__ab__group__add,type,
linord219039673up_add:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Archimedean__Field_Ofloor__ceiling,type,
archim1727834104eiling:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Complete__Lattices_Ocomplete__lattice,type,
comple187826305attice:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Archimedean__Field_Oarchimedean__field,type,
archim1804426504_field:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
canoni770627133id_add:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Oordered__ab__semigroup__add__imp__le,type,
ordere236663937imp_le:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_cl_Groups_Oordered__ab__semigroup__monoid__add__imp__le,type,
ordere516151231imp_le:
!>[A: $tType] : ( ( itself @ A ) > $o ) ).
thf(sy_c_Archimedean__Field_Oround,type,
archimedean_round:
!>[A: $tType] : ( A > int ) ).
thf(sy_c_Coinductive__List_Ollist_OLNil,type,
coinductive_LNil:
!>[A: $tType] : ( coinductive_llist @ A ) ).
thf(sy_c_Groups_Oplus__class_Oplus,type,
plus_plus:
!>[A: $tType] : ( A > A > A ) ).
thf(sy_c_Groups_Ozero__class_Ozero,type,
zero_zero:
!>[A: $tType] : A ).
thf(sy_c_Hilbert__Choice_OGreatestM,type,
hilbert_GreatestM:
!>[A: $tType,B: $tType] : ( ( A > B ) > ( A > $o ) > A ) ).
thf(sy_c_Hilbert__Choice_OLeastM,type,
hilbert_LeastM:
!>[A: $tType,B: $tType] : ( ( A > B ) > ( A > $o ) > A ) ).
thf(sy_c_If,type,
if:
!>[A: $tType] : ( $o > A > A > A ) ).
thf(sy_c_Int_Onat,type,
nat2: int > nat ).
thf(sy_c_LList2__Mirabelle__hamjzmohle_Oalllsts,type,
lList2435255213lllsts:
!>[A: $tType] : ( ( set @ A ) > ( set @ ( coinductive_llist @ A ) ) ) ).
thf(sy_c_LList2__Mirabelle__hamjzmohle_Ofpslsts,type,
lList22096119349pslsts:
!>[A: $tType] : ( ( set @ A ) > ( set @ ( coinductive_llist @ A ) ) ) ).
thf(sy_c_LList2__Mirabelle__hamjzmohle_Oinflsts,type,
lList21612149805nflsts:
!>[A: $tType] : ( ( set @ A ) > ( set @ ( coinductive_llist @ A ) ) ) ).
thf(sy_c_LList2__Mirabelle__hamjzmohle_Olbutlast,type,
lList2370560421utlast:
!>[A: $tType] : ( ( coinductive_llist @ A ) > ( coinductive_llist @ A ) ) ).
thf(sy_c_LList2__Mirabelle__hamjzmohle_Oll2f,type,
lList2228235758e_ll2f:
!>[A: $tType] : ( ( coinductive_llist @ A ) > nat > ( option @ A ) ) ).
thf(sy_c_LList2__Mirabelle__hamjzmohle_Ollength,type,
lList21232602520length:
!>[A: $tType] : ( ( coinductive_llist @ A ) > nat ) ).
thf(sy_c_LList2__Mirabelle__hamjzmohle_Oltake,type,
lList22119844313_ltake:
!>[A: $tType] : ( ( coinductive_llist @ A ) > nat > ( coinductive_llist @ A ) ) ).
thf(sy_c_LList2__Mirabelle__hamjzmohle_Oposlsts,type,
lList21148268032oslsts:
!>[A: $tType] : ( ( set @ A ) > ( set @ ( coinductive_llist @ A ) ) ) ).
thf(sy_c_Nat_OSuc,type,
suc: nat > nat ).
thf(sy_c_Nat_Osemiring__1__class_Oof__nat,type,
semiring_1_of_nat:
!>[A: $tType] : ( nat > A ) ).
thf(sy_c_Nat_Osemiring__1__class_Oof__nat__aux,type,
semiri532925092at_aux:
!>[A: $tType] : ( ( A > A ) > nat > A > A ) ).
thf(sy_c_Nat_Osize__class_Osize,type,
size_size:
!>[A: $tType] : ( A > nat ) ).
thf(sy_c_Nat__Transfer_Otransfer__morphism,type,
nat_tr1645093318rphism:
!>[B: $tType,A: $tType] : ( ( B > A ) > ( B > $o ) > $o ) ).
thf(sy_c_Nat__Transfer_Otsub,type,
nat_tsub: int > int > int ).
thf(sy_c_Num_Onumeral__class_Onumeral,type,
numeral_numeral:
!>[A: $tType] : ( num > A ) ).
thf(sy_c_Option_Obind,type,
bind:
!>[A: $tType,B: $tType] : ( ( option @ A ) > ( A > ( option @ B ) ) > ( option @ B ) ) ).
thf(sy_c_Option_Ocombine__options,type,
combine_options:
!>[A: $tType] : ( ( A > A > A ) > ( option @ A ) > ( option @ A ) > ( option @ A ) ) ).
thf(sy_c_Option_Ois__none,type,
is_none:
!>[A: $tType] : ( ( option @ A ) > $o ) ).
thf(sy_c_Option_Ooption_ONone,type,
none:
!>[A: $tType] : ( option @ A ) ).
thf(sy_c_Option_Ooption_OSome,type,
some:
!>[A: $tType] : ( A > ( option @ A ) ) ).
thf(sy_c_Option_Ooption_Ocase__option,type,
case_option:
!>[B: $tType,A: $tType] : ( B > ( A > B ) > ( option @ A ) > B ) ).
thf(sy_c_Option_Ooption_Opred__option,type,
pred_option:
!>[A: $tType] : ( ( A > $o ) > ( option @ A ) > $o ) ).
thf(sy_c_Option_Ooption_Orec__option,type,
rec_option:
!>[C: $tType,A: $tType] : ( C > ( A > C ) > ( option @ A ) > C ) ).
thf(sy_c_Option_Ooption_Oset__option,type,
set_option:
!>[A: $tType] : ( ( option @ A ) > ( set @ A ) ) ).
thf(sy_c_Option_Ooption_Osize__option,type,
size_option:
!>[A: $tType] : ( ( A > nat ) > ( option @ A ) > nat ) ).
thf(sy_c_Option_Ooption_Othe,type,
the:
!>[A: $tType] : ( ( option @ A ) > A ) ).
thf(sy_c_Orderings_Oord__class_Oless__eq,type,
ord_less_eq:
!>[A: $tType] : ( A > A > $o ) ).
thf(sy_c_Pure_Otype,type,
type2:
!>[A: $tType] : ( itself @ A ) ).
thf(sy_c_Set_OCollect,type,
collect:
!>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
thf(sy_c_member,type,
member:
!>[A: $tType] : ( A > ( set @ A ) > $o ) ).
thf(sy_v_Q,type,
q: $o ).
thf(sy_v_i,type,
i: nat ).
thf(sy_v_j,type,
j: nat ).
thf(sy_v_t,type,
t: coinductive_llist @ a ).
thf(sy_v_x,type,
x: a ).
%----Relevant facts (253)
thf(fact_0_H,axiom,
! [Y: a] :
( ( ( lList2228235758e_ll2f @ a @ t @ j )
= ( some @ a @ Y ) )
=> q ) ).
% H
thf(fact_1_jlei,axiom,
ord_less_eq @ nat @ j @ i ).
% jlei
thf(fact_2_tisome,axiom,
( ( lList2228235758e_ll2f @ a @ t @ i )
= ( some @ a @ x ) ) ).
% tisome
thf(fact_3_option_Oinject,axiom,
! [A: $tType,X2: A,Y2: A] :
( ( ( some @ A @ X2 )
= ( some @ A @ Y2 ) )
= ( X2 = Y2 ) ) ).
% option.inject
thf(fact_4_order__refl,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A] : ( ord_less_eq @ A @ X @ X ) ) ).
% order_refl
thf(fact_5_le__refl,axiom,
! [N: nat] : ( ord_less_eq @ nat @ N @ N ) ).
% le_refl
thf(fact_6_le__trans,axiom,
! [I: nat,J: nat,K: nat] :
( ( ord_less_eq @ nat @ I @ J )
=> ( ( ord_less_eq @ nat @ J @ K )
=> ( ord_less_eq @ nat @ I @ K ) ) ) ).
% le_trans
thf(fact_7_eq__imp__le,axiom,
! [M: nat,N: nat] :
( ( M = N )
=> ( ord_less_eq @ nat @ M @ N ) ) ).
% eq_imp_le
thf(fact_8_le__antisym,axiom,
! [M: nat,N: nat] :
( ( ord_less_eq @ nat @ M @ N )
=> ( ( ord_less_eq @ nat @ N @ M )
=> ( M = N ) ) ) ).
% le_antisym
thf(fact_9_nat__le__linear,axiom,
! [M: nat,N: nat] :
( ( ord_less_eq @ nat @ M @ N )
| ( ord_less_eq @ nat @ N @ M ) ) ).
% nat_le_linear
thf(fact_10_ex__has__least__nat,axiom,
! [A: $tType,P: A > $o,K: A,M: A > nat] :
( ( P @ K )
=> ? [X3: A] :
( ( P @ X3 )
& ! [Y3: A] :
( ( P @ Y3 )
=> ( ord_less_eq @ nat @ ( M @ X3 ) @ ( M @ Y3 ) ) ) ) ) ).
% ex_has_least_nat
thf(fact_11_le__funD,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [F: A > B,G: A > B,X: A] :
( ( ord_less_eq @ ( A > B ) @ F @ G )
=> ( ord_less_eq @ B @ ( F @ X ) @ ( G @ X ) ) ) ) ).
% le_funD
thf(fact_12_le__funE,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [F: A > B,G: A > B,X: A] :
( ( ord_less_eq @ ( A > B ) @ F @ G )
=> ( ord_less_eq @ B @ ( F @ X ) @ ( G @ X ) ) ) ) ).
% le_funE
thf(fact_13_le__funI,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [F: A > B,G: A > B] :
( ! [X3: A] : ( ord_less_eq @ B @ ( F @ X3 ) @ ( G @ X3 ) )
=> ( ord_less_eq @ ( A > B ) @ F @ G ) ) ) ).
% le_funI
thf(fact_14_le__fun__def,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ( ( ord_less_eq @ ( A > B ) )
= ( ^ [F2: A > B,G2: A > B] :
! [X4: A] : ( ord_less_eq @ B @ ( F2 @ X4 ) @ ( G2 @ X4 ) ) ) ) ) ).
% le_fun_def
thf(fact_15_dual__order_Oantisym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( ord_less_eq @ A @ B2 @ A2 )
=> ( ( ord_less_eq @ A @ A2 @ B2 )
=> ( A2 = B2 ) ) ) ) ).
% dual_order.antisym
thf(fact_16_dual__order_Otrans,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A,C2: A] :
( ( ord_less_eq @ A @ B2 @ A2 )
=> ( ( ord_less_eq @ A @ C2 @ B2 )
=> ( ord_less_eq @ A @ C2 @ A2 ) ) ) ) ).
% dual_order.trans
thf(fact_17_linorder__wlog,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > A > $o,A2: A,B2: A] :
( ! [A3: A,B3: A] :
( ( ord_less_eq @ A @ A3 @ B3 )
=> ( P @ A3 @ B3 ) )
=> ( ! [A3: A,B3: A] :
( ( P @ B3 @ A3 )
=> ( P @ A3 @ B3 ) )
=> ( P @ A2 @ B2 ) ) ) ) ).
% linorder_wlog
thf(fact_18_dual__order_Orefl,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A] : ( ord_less_eq @ A @ A2 @ A2 ) ) ).
% dual_order.refl
thf(fact_19_order__trans,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A,Z: A] :
( ( ord_less_eq @ A @ X @ Y )
=> ( ( ord_less_eq @ A @ Y @ Z )
=> ( ord_less_eq @ A @ X @ Z ) ) ) ) ).
% order_trans
thf(fact_20_order__class_Oorder_Oantisym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ B2 @ A2 )
=> ( A2 = B2 ) ) ) ) ).
% order_class.order.antisym
thf(fact_21_ord__le__eq__trans,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C2: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( B2 = C2 )
=> ( ord_less_eq @ A @ A2 @ C2 ) ) ) ) ).
% ord_le_eq_trans
thf(fact_22_ord__eq__le__trans,axiom,
! [A: $tType] :
( ( ord @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C2: A] :
( ( A2 = B2 )
=> ( ( ord_less_eq @ A @ B2 @ C2 )
=> ( ord_less_eq @ A @ A2 @ C2 ) ) ) ) ).
% ord_eq_le_trans
thf(fact_23_antisym__conv,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [Y: A,X: A] :
( ( ord_less_eq @ A @ Y @ X )
=> ( ( ord_less_eq @ A @ X @ Y )
= ( X = Y ) ) ) ) ).
% antisym_conv
thf(fact_24_le__cases3,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A,Z: A] :
( ( ( ord_less_eq @ A @ X @ Y )
=> ~ ( ord_less_eq @ A @ Y @ Z ) )
=> ( ( ( ord_less_eq @ A @ Y @ X )
=> ~ ( ord_less_eq @ A @ X @ Z ) )
=> ( ( ( ord_less_eq @ A @ X @ Z )
=> ~ ( ord_less_eq @ A @ Z @ Y ) )
=> ( ( ( ord_less_eq @ A @ Z @ Y )
=> ~ ( ord_less_eq @ A @ Y @ X ) )
=> ( ( ( ord_less_eq @ A @ Y @ Z )
=> ~ ( ord_less_eq @ A @ Z @ X ) )
=> ~ ( ( ord_less_eq @ A @ Z @ X )
=> ~ ( ord_less_eq @ A @ X @ Y ) ) ) ) ) ) ) ) ).
% le_cases3
thf(fact_25_order_Otrans,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A,C2: A] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ A @ B2 @ C2 )
=> ( ord_less_eq @ A @ A2 @ C2 ) ) ) ) ).
% order.trans
thf(fact_26_le__cases,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ~ ( ord_less_eq @ A @ X @ Y )
=> ( ord_less_eq @ A @ Y @ X ) ) ) ).
% le_cases
thf(fact_27_eq__refl,axiom,
! [A: $tType] :
( ( preorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( X = Y )
=> ( ord_less_eq @ A @ X @ Y ) ) ) ).
% eq_refl
thf(fact_28_linear,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less_eq @ A @ X @ Y )
| ( ord_less_eq @ A @ Y @ X ) ) ) ).
% linear
thf(fact_29_antisym,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less_eq @ A @ X @ Y )
=> ( ( ord_less_eq @ A @ Y @ X )
=> ( X = Y ) ) ) ) ).
% antisym
thf(fact_30_eq__iff,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ( ( ^ [Y4: A,Z2: A] : Y4 = Z2 )
= ( ^ [X4: A,Y5: A] :
( ( ord_less_eq @ A @ X4 @ Y5 )
& ( ord_less_eq @ A @ Y5 @ X4 ) ) ) ) ) ).
% eq_iff
thf(fact_31_ord__le__eq__subst,axiom,
! [A: $tType,B: $tType] :
( ( ( ord @ B @ ( type2 @ B ) )
& ( ord @ A @ ( type2 @ A ) ) )
=> ! [A2: A,B2: A,F: A > B,C2: B] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ( F @ B2 )
= C2 )
=> ( ! [X3: A,Y6: A] :
( ( ord_less_eq @ A @ X3 @ Y6 )
=> ( ord_less_eq @ B @ ( F @ X3 ) @ ( F @ Y6 ) ) )
=> ( ord_less_eq @ B @ ( F @ A2 ) @ C2 ) ) ) ) ) ).
% ord_le_eq_subst
thf(fact_32_ord__eq__le__subst,axiom,
! [A: $tType,B: $tType] :
( ( ( ord @ B @ ( type2 @ B ) )
& ( ord @ A @ ( type2 @ A ) ) )
=> ! [A2: A,F: B > A,B2: B,C2: B] :
( ( A2
= ( F @ B2 ) )
=> ( ( ord_less_eq @ B @ B2 @ C2 )
=> ( ! [X3: B,Y6: B] :
( ( ord_less_eq @ B @ X3 @ Y6 )
=> ( ord_less_eq @ A @ ( F @ X3 ) @ ( F @ Y6 ) ) )
=> ( ord_less_eq @ A @ A2 @ ( F @ C2 ) ) ) ) ) ) ).
% ord_eq_le_subst
thf(fact_33_order__subst2,axiom,
! [A: $tType,C: $tType] :
( ( ( order @ C @ ( type2 @ C ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A2: A,B2: A,F: A > C,C2: C] :
( ( ord_less_eq @ A @ A2 @ B2 )
=> ( ( ord_less_eq @ C @ ( F @ B2 ) @ C2 )
=> ( ! [X3: A,Y6: A] :
( ( ord_less_eq @ A @ X3 @ Y6 )
=> ( ord_less_eq @ C @ ( F @ X3 ) @ ( F @ Y6 ) ) )
=> ( ord_less_eq @ C @ ( F @ A2 ) @ C2 ) ) ) ) ) ).
% order_subst2
thf(fact_34_order__subst1,axiom,
! [A: $tType,B: $tType] :
( ( ( order @ B @ ( type2 @ B ) )
& ( order @ A @ ( type2 @ A ) ) )
=> ! [A2: A,F: B > A,B2: B,C2: B] :
( ( ord_less_eq @ A @ A2 @ ( F @ B2 ) )
=> ( ( ord_less_eq @ B @ B2 @ C2 )
=> ( ! [X3: B,Y6: B] :
( ( ord_less_eq @ B @ X3 @ Y6 )
=> ( ord_less_eq @ A @ ( F @ X3 ) @ ( F @ Y6 ) ) )
=> ( ord_less_eq @ A @ A2 @ ( F @ C2 ) ) ) ) ) ) ).
% order_subst1
thf(fact_35_LeastMI2,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [P: A > $o,X: A,M: A > B,Q: A > $o] :
( ( P @ X )
=> ( ! [Y6: A] :
( ( P @ Y6 )
=> ( ord_less_eq @ B @ ( M @ X ) @ ( M @ Y6 ) ) )
=> ( ! [X3: A] :
( ( P @ X3 )
=> ( ! [Y3: A] :
( ( P @ Y3 )
=> ( ord_less_eq @ B @ ( M @ X3 ) @ ( M @ Y3 ) ) )
=> ( Q @ X3 ) ) )
=> ( Q @ ( hilbert_LeastM @ A @ B @ M @ P ) ) ) ) ) ) ).
% LeastMI2
thf(fact_36_lfp_Oleq__antisym,axiom,
! [A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less_eq @ A @ X @ Y )
=> ( ( ord_less_eq @ A @ Y @ X )
=> ( X = Y ) ) ) ) ).
% lfp.leq_antisym
thf(fact_37_gfp_Oleq__antisym,axiom,
! [A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Y: A,X: A] :
( ( ord_less_eq @ A @ Y @ X )
=> ( ( ord_less_eq @ A @ X @ Y )
=> ( X = Y ) ) ) ) ).
% gfp.leq_antisym
thf(fact_38_lfp_Oleq__trans,axiom,
! [A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A,Z: A] :
( ( ord_less_eq @ A @ X @ Y )
=> ( ( ord_less_eq @ A @ Y @ Z )
=> ( ord_less_eq @ A @ X @ Z ) ) ) ) ).
% lfp.leq_trans
thf(fact_39_gfp_Oleq__trans,axiom,
! [A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [Y: A,X: A,Z: A] :
( ( ord_less_eq @ A @ Y @ X )
=> ( ( ord_less_eq @ A @ Z @ Y )
=> ( ord_less_eq @ A @ Z @ X ) ) ) ) ).
% gfp.leq_trans
thf(fact_40_lfp_Oleq__refl,axiom,
! [A: $tType] :
( ( comple187826305attice @ A @ ( type2 @ A ) )
=> ! [X: A] : ( ord_less_eq @ A @ X @ X ) ) ).
% lfp.leq_refl
thf(fact_41_wlog__linorder__le,axiom,
! [A: $tType] :
( ( linorder @ A @ ( type2 @ A ) )
=> ! [P: A > A > $o,B2: A,A2: A] :
( ! [A3: A,B3: A] :
( ( ord_less_eq @ A @ A3 @ B3 )
=> ( P @ A3 @ B3 ) )
=> ( ( ( P @ B2 @ A2 )
=> ( P @ A2 @ B2 ) )
=> ( P @ A2 @ B2 ) ) ) ) ).
% wlog_linorder_le
thf(fact_42_GreatestMI2,axiom,
! [B: $tType,A: $tType] :
( ( ord @ B @ ( type2 @ B ) )
=> ! [P: A > $o,X: A,M: A > B,Q: A > $o] :
( ( P @ X )
=> ( ! [Y6: A] :
( ( P @ Y6 )
=> ( ord_less_eq @ B @ ( M @ Y6 ) @ ( M @ X ) ) )
=> ( ! [X3: A] :
( ( P @ X3 )
=> ( ! [Y3: A] :
( ( P @ Y3 )
=> ( ord_less_eq @ B @ ( M @ Y3 ) @ ( M @ X3 ) ) )
=> ( Q @ X3 ) ) )
=> ( Q @ ( hilbert_GreatestM @ A @ B @ M @ P ) ) ) ) ) ) ).
% GreatestMI2
thf(fact_43_infinite__idx__SomeE,axiom,
! [A: $tType,T: coinductive_llist @ A,A4: set @ A,I: nat] :
( ( member @ ( coinductive_llist @ A ) @ T @ ( lList21612149805nflsts @ A @ A4 ) )
=> ~ ! [X3: A] :
( ( lList2228235758e_ll2f @ A @ T @ I )
!= ( some @ A @ X3 ) ) ) ).
% infinite_idx_SomeE
thf(fact_44_infinite__Some,axiom,
! [A: $tType,T: coinductive_llist @ A,A4: set @ A,I: nat] :
( ( member @ ( coinductive_llist @ A ) @ T @ ( lList21612149805nflsts @ A @ A4 ) )
=> ? [A3: A] :
( ( lList2228235758e_ll2f @ A @ T @ I )
= ( some @ A @ A3 ) ) ) ).
% infinite_Some
thf(fact_45_mem__Collect__eq,axiom,
! [A: $tType,A2: A,P: A > $o] :
( ( member @ A @ A2 @ ( collect @ A @ P ) )
= ( P @ A2 ) ) ).
% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
! [A: $tType,A4: set @ A] :
( ( collect @ A
@ ^ [X4: A] : ( member @ A @ X4 @ A4 ) )
= A4 ) ).
% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ! [X3: A] :
( ( P @ X3 )
= ( Q @ X3 ) )
=> ( ( collect @ A @ P )
= ( collect @ A @ Q ) ) ) ).
% Collect_cong
thf(fact_48_ext,axiom,
! [B: $tType,A: $tType,F: A > B,G: A > B] :
( ! [X3: A] :
( ( F @ X3 )
= ( G @ X3 ) )
=> ( F = G ) ) ).
% ext
thf(fact_49_inflsts__mono,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ord_less_eq @ ( set @ ( coinductive_llist @ A ) ) @ ( lList21612149805nflsts @ A @ A4 ) @ ( lList21612149805nflsts @ A @ B4 ) ) ) ).
% inflsts_mono
thf(fact_50_LeastM__nat__le,axiom,
! [A: $tType,P: A > $o,X: A,M: A > nat] :
( ( P @ X )
=> ( ord_less_eq @ nat @ ( M @ ( hilbert_LeastM @ A @ nat @ M @ P ) ) @ ( M @ X ) ) ) ).
% LeastM_nat_le
thf(fact_51_LeastM__nat__lemma,axiom,
! [A: $tType,P: A > $o,K: A,M: A > nat] :
( ( P @ K )
=> ( ( P @ ( hilbert_LeastM @ A @ nat @ M @ P ) )
& ! [Y3: A] :
( ( P @ Y3 )
=> ( ord_less_eq @ nat @ ( M @ ( hilbert_LeastM @ A @ nat @ M @ P ) ) @ ( M @ Y3 ) ) ) ) ) ).
% LeastM_nat_lemma
thf(fact_52_option_Osimps_I7_J,axiom,
! [C: $tType,A: $tType,F1: C,F22: A > C,X2: A] :
( ( rec_option @ C @ A @ F1 @ F22 @ ( some @ A @ X2 ) )
= ( F22 @ X2 ) ) ).
% option.simps(7)
thf(fact_53_combine__options__simps_I3_J,axiom,
! [A: $tType,F: A > A > A,A2: A,B2: A] :
( ( combine_options @ A @ F @ ( some @ A @ A2 ) @ ( some @ A @ B2 ) )
= ( some @ A @ ( F @ A2 @ B2 ) ) ) ).
% combine_options_simps(3)
thf(fact_54_ll2f__lem1,axiom,
! [A: $tType,T: coinductive_llist @ A,I: nat,X: A] :
( ( ( lList2228235758e_ll2f @ A @ T @ ( suc @ I ) )
= ( some @ A @ X ) )
=> ? [Y6: A] :
( ( lList2228235758e_ll2f @ A @ T @ I )
= ( some @ A @ Y6 ) ) ) ).
% ll2f_lem1
thf(fact_55_ll2f__Suc__Some,axiom,
! [A: $tType,T: coinductive_llist @ A,I: nat,X: A] :
( ( ( lList2228235758e_ll2f @ A @ T @ ( suc @ I ) )
= ( some @ A @ X ) )
=> ~ ! [X3: A] :
( ( lList2228235758e_ll2f @ A @ T @ I )
!= ( some @ A @ X3 ) ) ) ).
% ll2f_Suc_Some
thf(fact_56_ll2f__None__le,axiom,
! [A: $tType,T: coinductive_llist @ A,J: nat,I: nat] :
( ( ( lList2228235758e_ll2f @ A @ T @ J )
= ( none @ A ) )
=> ( ( ord_less_eq @ nat @ J @ I )
=> ( ( lList2228235758e_ll2f @ A @ T @ I )
= ( none @ A ) ) ) ) ).
% ll2f_None_le
thf(fact_57_of__nat__le__iff,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ! [M: nat,N: nat] :
( ( ord_less_eq @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) )
= ( ord_less_eq @ nat @ M @ N ) ) ) ).
% of_nat_le_iff
thf(fact_58_is__none__code_I2_J,axiom,
! [B: $tType,X: B] :
~ ( is_none @ B @ ( some @ B @ X ) ) ).
% is_none_code(2)
thf(fact_59_option_Opred__inject_I2_J,axiom,
! [A: $tType,P: A > $o,A2: A] :
( ( pred_option @ A @ P @ ( some @ A @ A2 ) )
= ( P @ A2 ) ) ).
% option.pred_inject(2)
thf(fact_60_nat_Oinject,axiom,
! [X2: nat,Y2: nat] :
( ( ( suc @ X2 )
= ( suc @ Y2 ) )
= ( X2 = Y2 ) ) ).
% nat.inject
thf(fact_61_old_Onat_Oinject,axiom,
! [Nat: nat,Nat2: nat] :
( ( ( suc @ Nat )
= ( suc @ Nat2 ) )
= ( Nat = Nat2 ) ) ).
% old.nat.inject
thf(fact_62_of__nat__eq__iff,axiom,
! [A: $tType] :
( ( semiring_char_0 @ A @ ( type2 @ A ) )
=> ! [M: nat,N: nat] :
( ( ( semiring_1_of_nat @ A @ M )
= ( semiring_1_of_nat @ A @ N ) )
= ( M = N ) ) ) ).
% of_nat_eq_iff
thf(fact_63_Suc__le__mono,axiom,
! [N: nat,M: nat] :
( ( ord_less_eq @ nat @ ( suc @ N ) @ ( suc @ M ) )
= ( ord_less_eq @ nat @ N @ M ) ) ).
% Suc_le_mono
thf(fact_64_not__Some__eq,axiom,
! [A: $tType,X: option @ A] :
( ( ! [Y5: A] :
( X
!= ( some @ A @ Y5 ) ) )
= ( X
= ( none @ A ) ) ) ).
% not_Some_eq
thf(fact_65_not__None__eq,axiom,
! [A: $tType,X: option @ A] :
( ( X
!= ( none @ A ) )
= ( ? [Y5: A] :
( X
= ( some @ A @ Y5 ) ) ) ) ).
% not_None_eq
thf(fact_66_is__none__code_I1_J,axiom,
! [A: $tType] : ( is_none @ A @ ( none @ A ) ) ).
% is_none_code(1)
thf(fact_67_combine__options__simps_I2_J,axiom,
! [A: $tType,F: A > A > A,X: option @ A] :
( ( combine_options @ A @ F @ X @ ( none @ A ) )
= X ) ).
% combine_options_simps(2)
thf(fact_68_combine__options__simps_I1_J,axiom,
! [A: $tType,F: A > A > A,Y: option @ A] :
( ( combine_options @ A @ F @ ( none @ A ) @ Y )
= Y ) ).
% combine_options_simps(1)
thf(fact_69_LeastM__natI,axiom,
! [A: $tType,P: A > $o,K: A,M: A > nat] :
( ( P @ K )
=> ( P @ ( hilbert_LeastM @ A @ nat @ M @ P ) ) ) ).
% LeastM_natI
thf(fact_70_ll2f__None__Suc,axiom,
! [A: $tType,T: coinductive_llist @ A,I: nat] :
( ( ( lList2228235758e_ll2f @ A @ T @ I )
= ( none @ A ) )
=> ( ( lList2228235758e_ll2f @ A @ T @ ( suc @ I ) )
= ( none @ A ) ) ) ).
% ll2f_None_Suc
thf(fact_71_option_Osimps_I6_J,axiom,
! [A: $tType,C: $tType,F1: C,F22: A > C] :
( ( rec_option @ C @ A @ F1 @ F22 @ ( none @ A ) )
= F1 ) ).
% option.simps(6)
thf(fact_72_is__none__simps_I1_J,axiom,
! [A: $tType] : ( is_none @ A @ ( none @ A ) ) ).
% is_none_simps(1)
thf(fact_73_option_Opred__inject_I1_J,axiom,
! [A: $tType,P: A > $o] : ( pred_option @ A @ P @ ( none @ A ) ) ).
% option.pred_inject(1)
thf(fact_74_Suc__inject,axiom,
! [X: nat,Y: nat] :
( ( ( suc @ X )
= ( suc @ Y ) )
=> ( X = Y ) ) ).
% Suc_inject
thf(fact_75_n__not__Suc__n,axiom,
! [N: nat] :
( N
!= ( suc @ N ) ) ).
% n_not_Suc_n
thf(fact_76_Option_Ois__none__def,axiom,
! [A: $tType] :
( ( is_none @ A )
= ( ^ [X4: option @ A] :
( X4
= ( none @ A ) ) ) ) ).
% Option.is_none_def
thf(fact_77_combine__options__assoc,axiom,
! [A: $tType,F: A > A > A,X: option @ A,Y: option @ A,Z: option @ A] :
( ! [X3: A,Y6: A,Z3: A] :
( ( F @ ( F @ X3 @ Y6 ) @ Z3 )
= ( F @ X3 @ ( F @ Y6 @ Z3 ) ) )
=> ( ( combine_options @ A @ F @ ( combine_options @ A @ F @ X @ Y ) @ Z )
= ( combine_options @ A @ F @ X @ ( combine_options @ A @ F @ Y @ Z ) ) ) ) ).
% combine_options_assoc
thf(fact_78_combine__options__commute,axiom,
! [A: $tType,F: A > A > A,X: option @ A,Y: option @ A] :
( ! [X3: A,Y6: A] :
( ( F @ X3 @ Y6 )
= ( F @ Y6 @ X3 ) )
=> ( ( combine_options @ A @ F @ X @ Y )
= ( combine_options @ A @ F @ Y @ X ) ) ) ).
% combine_options_commute
thf(fact_79_combine__options__left__commute,axiom,
! [A: $tType,F: A > A > A,Y: option @ A,X: option @ A,Z: option @ A] :
( ! [X3: A,Y6: A] :
( ( F @ X3 @ Y6 )
= ( F @ Y6 @ X3 ) )
=> ( ! [X3: A,Y6: A,Z3: A] :
( ( F @ ( F @ X3 @ Y6 ) @ Z3 )
= ( F @ X3 @ ( F @ Y6 @ Z3 ) ) )
=> ( ( combine_options @ A @ F @ Y @ ( combine_options @ A @ F @ X @ Z ) )
= ( combine_options @ A @ F @ X @ ( combine_options @ A @ F @ Y @ Z ) ) ) ) ) ).
% combine_options_left_commute
thf(fact_80_full__nat__induct,axiom,
! [P: nat > $o,N: nat] :
( ! [N2: nat] :
( ! [M2: nat] :
( ( ord_less_eq @ nat @ ( suc @ M2 ) @ N2 )
=> ( P @ M2 ) )
=> ( P @ N2 ) )
=> ( P @ N ) ) ).
% full_nat_induct
thf(fact_81_not__less__eq__eq,axiom,
! [M: nat,N: nat] :
( ( ~ ( ord_less_eq @ nat @ M @ N ) )
= ( ord_less_eq @ nat @ ( suc @ N ) @ M ) ) ).
% not_less_eq_eq
thf(fact_82_Suc__n__not__le__n,axiom,
! [N: nat] :
~ ( ord_less_eq @ nat @ ( suc @ N ) @ N ) ).
% Suc_n_not_le_n
thf(fact_83_le__Suc__eq,axiom,
! [M: nat,N: nat] :
( ( ord_less_eq @ nat @ M @ ( suc @ N ) )
= ( ( ord_less_eq @ nat @ M @ N )
| ( M
= ( suc @ N ) ) ) ) ).
% le_Suc_eq
thf(fact_84_Suc__le__D,axiom,
! [N: nat,M3: nat] :
( ( ord_less_eq @ nat @ ( suc @ N ) @ M3 )
=> ? [M4: nat] :
( M3
= ( suc @ M4 ) ) ) ).
% Suc_le_D
thf(fact_85_le__SucI,axiom,
! [M: nat,N: nat] :
( ( ord_less_eq @ nat @ M @ N )
=> ( ord_less_eq @ nat @ M @ ( suc @ N ) ) ) ).
% le_SucI
thf(fact_86_le__SucE,axiom,
! [M: nat,N: nat] :
( ( ord_less_eq @ nat @ M @ ( suc @ N ) )
=> ( ~ ( ord_less_eq @ nat @ M @ N )
=> ( M
= ( suc @ N ) ) ) ) ).
% le_SucE
thf(fact_87_Suc__leD,axiom,
! [M: nat,N: nat] :
( ( ord_less_eq @ nat @ ( suc @ M ) @ N )
=> ( ord_less_eq @ nat @ M @ N ) ) ).
% Suc_leD
thf(fact_88_combine__options__cases,axiom,
! [A: $tType,B: $tType,X: option @ A,P: ( option @ A ) > ( option @ B ) > $o,Y: option @ B] :
( ( ( X
= ( none @ A ) )
=> ( P @ X @ Y ) )
=> ( ( ( Y
= ( none @ B ) )
=> ( P @ X @ Y ) )
=> ( ! [A3: A,B3: B] :
( ( X
= ( some @ A @ A3 ) )
=> ( ( Y
= ( some @ B @ B3 ) )
=> ( P @ X @ Y ) ) )
=> ( P @ X @ Y ) ) ) ) ).
% combine_options_cases
thf(fact_89_split__option__all,axiom,
! [A: $tType] :
( ( ^ [P2: ( option @ A ) > $o] :
! [X5: option @ A] : ( P2 @ X5 ) )
= ( ^ [P3: ( option @ A ) > $o] :
( ( P3 @ ( none @ A ) )
& ! [X4: A] : ( P3 @ ( some @ A @ X4 ) ) ) ) ) ).
% split_option_all
thf(fact_90_split__option__ex,axiom,
! [A: $tType] :
( ( ^ [P2: ( option @ A ) > $o] :
? [X5: option @ A] : ( P2 @ X5 ) )
= ( ^ [P3: ( option @ A ) > $o] :
( ( P3 @ ( none @ A ) )
| ? [X4: A] : ( P3 @ ( some @ A @ X4 ) ) ) ) ) ).
% split_option_ex
thf(fact_91_option_Oinducts,axiom,
! [A: $tType,P: ( option @ A ) > $o,Option: option @ A] :
( ( P @ ( none @ A ) )
=> ( ! [X3: A] : ( P @ ( some @ A @ X3 ) )
=> ( P @ Option ) ) ) ).
% option.inducts
thf(fact_92_option_Oexhaust,axiom,
! [A: $tType,Y: option @ A] :
( ( Y
!= ( none @ A ) )
=> ~ ! [X22: A] :
( Y
!= ( some @ A @ X22 ) ) ) ).
% option.exhaust
thf(fact_93_option_OdiscI,axiom,
! [A: $tType,Option: option @ A,X2: A] :
( ( Option
= ( some @ A @ X2 ) )
=> ( Option
!= ( none @ A ) ) ) ).
% option.discI
thf(fact_94_option_Odistinct_I1_J,axiom,
! [A: $tType,X2: A] :
( ( none @ A )
!= ( some @ A @ X2 ) ) ).
% option.distinct(1)
thf(fact_95_is__none__simps_I2_J,axiom,
! [B: $tType,X: B] :
~ ( is_none @ B @ ( some @ B @ X ) ) ).
% is_none_simps(2)
thf(fact_96_lift__Suc__antimono__le,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [F: nat > A,N: nat,N3: nat] :
( ! [N2: nat] : ( ord_less_eq @ A @ ( F @ ( suc @ N2 ) ) @ ( F @ N2 ) )
=> ( ( ord_less_eq @ nat @ N @ N3 )
=> ( ord_less_eq @ A @ ( F @ N3 ) @ ( F @ N ) ) ) ) ) ).
% lift_Suc_antimono_le
thf(fact_97_lift__Suc__mono__le,axiom,
! [A: $tType] :
( ( order @ A @ ( type2 @ A ) )
=> ! [F: nat > A,N: nat,N3: nat] :
( ! [N2: nat] : ( ord_less_eq @ A @ ( F @ N2 ) @ ( F @ ( suc @ N2 ) ) )
=> ( ( ord_less_eq @ nat @ N @ N3 )
=> ( ord_less_eq @ A @ ( F @ N ) @ ( F @ N3 ) ) ) ) ) ).
% lift_Suc_mono_le
thf(fact_98_subset__antisym,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( ord_less_eq @ ( set @ A ) @ B4 @ A4 )
=> ( A4 = B4 ) ) ) ).
% subset_antisym
thf(fact_99_subsetI,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ! [X3: A] :
( ( member @ A @ X3 @ A4 )
=> ( member @ A @ X3 @ B4 ) )
=> ( ord_less_eq @ ( set @ A ) @ A4 @ B4 ) ) ).
% subsetI
thf(fact_100_real__arch__simple,axiom,
! [A: $tType] :
( ( archim1804426504_field @ A @ ( type2 @ A ) )
=> ! [X: A] :
? [N2: nat] : ( ord_less_eq @ A @ X @ ( semiring_1_of_nat @ A @ N2 ) ) ) ).
% real_arch_simple
thf(fact_101_poslsts__mono,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ord_less_eq @ ( set @ ( coinductive_llist @ A ) ) @ ( lList21148268032oslsts @ A @ A4 ) @ ( lList21148268032oslsts @ A @ B4 ) ) ) ).
% poslsts_mono
thf(fact_102_fpslsts__mono,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ord_less_eq @ ( set @ ( coinductive_llist @ A ) ) @ ( lList22096119349pslsts @ A @ A4 ) @ ( lList22096119349pslsts @ A @ B4 ) ) ) ).
% fpslsts_mono
thf(fact_103_zle__int,axiom,
! [M: nat,N: nat] :
( ( ord_less_eq @ int @ ( semiring_1_of_nat @ int @ M ) @ ( semiring_1_of_nat @ int @ N ) )
= ( ord_less_eq @ nat @ M @ N ) ) ).
% zle_int
thf(fact_104_transfer__int__nat__relations_I3_J,axiom,
! [X: nat,Y: nat] :
( ( ord_less_eq @ int @ ( semiring_1_of_nat @ int @ X ) @ ( semiring_1_of_nat @ int @ Y ) )
= ( ord_less_eq @ nat @ X @ Y ) ) ).
% transfer_int_nat_relations(3)
thf(fact_105_int__if__cong,axiom,
! [P: $o,X: nat,Y: nat] :
( ( P
=> ( ( semiring_1_of_nat @ int @ X )
= ( semiring_1_of_nat @ int @ ( if @ nat @ P @ X @ Y ) ) ) )
& ( ~ P
=> ( ( semiring_1_of_nat @ int @ Y )
= ( semiring_1_of_nat @ int @ ( if @ nat @ P @ X @ Y ) ) ) ) ) ).
% int_if_cong
thf(fact_106_int__int__eq,axiom,
! [M: nat,N: nat] :
( ( ( semiring_1_of_nat @ int @ M )
= ( semiring_1_of_nat @ int @ N ) )
= ( M = N ) ) ).
% int_int_eq
thf(fact_107_transfer__int__nat__relations_I1_J,axiom,
! [X: nat,Y: nat] :
( ( ( semiring_1_of_nat @ int @ X )
= ( semiring_1_of_nat @ int @ Y ) )
= ( X = Y ) ) ).
% transfer_int_nat_relations(1)
thf(fact_108_set__mp,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,X: A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( member @ A @ X @ A4 )
=> ( member @ A @ X @ B4 ) ) ) ).
% set_mp
thf(fact_109_in__mono,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,X: A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( member @ A @ X @ A4 )
=> ( member @ A @ X @ B4 ) ) ) ).
% in_mono
thf(fact_110_subsetD,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,C2: A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( member @ A @ C2 @ A4 )
=> ( member @ A @ C2 @ B4 ) ) ) ).
% subsetD
thf(fact_111_subsetCE,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,C2: A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( member @ A @ C2 @ A4 )
=> ( member @ A @ C2 @ B4 ) ) ) ).
% subsetCE
thf(fact_112_equalityE,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( A4 = B4 )
=> ~ ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ~ ( ord_less_eq @ ( set @ A ) @ B4 @ A4 ) ) ) ).
% equalityE
thf(fact_113_subset__eq,axiom,
! [A: $tType] :
( ( ord_less_eq @ ( set @ A ) )
= ( ^ [A5: set @ A,B5: set @ A] :
! [X4: A] :
( ( member @ A @ X4 @ A5 )
=> ( member @ A @ X4 @ B5 ) ) ) ) ).
% subset_eq
thf(fact_114_equalityD1,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( A4 = B4 )
=> ( ord_less_eq @ ( set @ A ) @ A4 @ B4 ) ) ).
% equalityD1
thf(fact_115_equalityD2,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( A4 = B4 )
=> ( ord_less_eq @ ( set @ A ) @ B4 @ A4 ) ) ).
% equalityD2
thf(fact_116_set__rev__mp,axiom,
! [A: $tType,X: A,A4: set @ A,B4: set @ A] :
( ( member @ A @ X @ A4 )
=> ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( member @ A @ X @ B4 ) ) ) ).
% set_rev_mp
thf(fact_117_subset__iff,axiom,
! [A: $tType] :
( ( ord_less_eq @ ( set @ A ) )
= ( ^ [A5: set @ A,B5: set @ A] :
! [T2: A] :
( ( member @ A @ T2 @ A5 )
=> ( member @ A @ T2 @ B5 ) ) ) ) ).
% subset_iff
thf(fact_118_rev__subsetD,axiom,
! [A: $tType,C2: A,A4: set @ A,B4: set @ A] :
( ( member @ A @ C2 @ A4 )
=> ( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( member @ A @ C2 @ B4 ) ) ) ).
% rev_subsetD
thf(fact_119_subset__refl,axiom,
! [A: $tType,A4: set @ A] : ( ord_less_eq @ ( set @ A ) @ A4 @ A4 ) ).
% subset_refl
thf(fact_120_Collect__mono,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ! [X3: A] :
( ( P @ X3 )
=> ( Q @ X3 ) )
=> ( ord_less_eq @ ( set @ A ) @ ( collect @ A @ P ) @ ( collect @ A @ Q ) ) ) ).
% Collect_mono
thf(fact_121_subset__trans,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,C3: set @ A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ( ord_less_eq @ ( set @ A ) @ B4 @ C3 )
=> ( ord_less_eq @ ( set @ A ) @ A4 @ C3 ) ) ) ).
% subset_trans
thf(fact_122_set__eq__subset,axiom,
! [A: $tType] :
( ( ^ [Y4: set @ A,Z2: set @ A] : Y4 = Z2 )
= ( ^ [A5: set @ A,B5: set @ A] :
( ( ord_less_eq @ ( set @ A ) @ A5 @ B5 )
& ( ord_less_eq @ ( set @ A ) @ B5 @ A5 ) ) ) ) ).
% set_eq_subset
thf(fact_123_contra__subsetD,axiom,
! [A: $tType,A4: set @ A,B4: set @ A,C2: A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ~ ( member @ A @ C2 @ B4 )
=> ~ ( member @ A @ C2 @ A4 ) ) ) ).
% contra_subsetD
thf(fact_124_Collect__mono__iff,axiom,
! [A: $tType,P: A > $o,Q: A > $o] :
( ( ord_less_eq @ ( set @ A ) @ ( collect @ A @ P ) @ ( collect @ A @ Q ) )
= ( ! [X4: A] :
( ( P @ X4 )
=> ( Q @ X4 ) ) ) ) ).
% Collect_mono_iff
thf(fact_125_round__of__nat,axiom,
! [A: $tType] :
( ( archim1727834104eiling @ A @ ( type2 @ A ) )
=> ! [N: nat] :
( ( archimedean_round @ A @ ( semiring_1_of_nat @ A @ N ) )
= ( semiring_1_of_nat @ int @ N ) ) ) ).
% round_of_nat
thf(fact_126_option_Ocollapse,axiom,
! [A: $tType,Option: option @ A] :
( ( Option
!= ( none @ A ) )
=> ( ( some @ A @ ( the @ A @ Option ) )
= Option ) ) ).
% option.collapse
thf(fact_127_transfer__morphismI,axiom,
! [B: $tType,A: $tType,F: A > B,A4: A > $o] : ( nat_tr1645093318rphism @ A @ B @ F @ A4 ) ).
% transfer_morphismI
thf(fact_128_of__nat__aux_Osimps_I2_J,axiom,
! [A: $tType] :
( ( semiring_1 @ A @ ( type2 @ A ) )
=> ! [Inc: A > A,N: nat,I: A] :
( ( semiri532925092at_aux @ A @ Inc @ ( suc @ N ) @ I )
= ( semiri532925092at_aux @ A @ Inc @ N @ ( Inc @ I ) ) ) ) ).
% of_nat_aux.simps(2)
thf(fact_129_round__mono,axiom,
! [A: $tType] :
( ( archim1727834104eiling @ A @ ( type2 @ A ) )
=> ! [X: A,Y: A] :
( ( ord_less_eq @ A @ X @ Y )
=> ( ord_less_eq @ int @ ( archimedean_round @ A @ X ) @ ( archimedean_round @ A @ Y ) ) ) ) ).
% round_mono
thf(fact_130_transfer__morphism__def,axiom,
! [A: $tType,B: $tType] :
( ( nat_tr1645093318rphism @ B @ A )
= ( ^ [F2: B > A,A5: B > $o] : $true ) ) ).
% transfer_morphism_def
thf(fact_131_option_Oexpand,axiom,
! [A: $tType,Option: option @ A,Option2: option @ A] :
( ( ( Option
= ( none @ A ) )
= ( Option2
= ( none @ A ) ) )
=> ( ( ( Option
!= ( none @ A ) )
=> ( ( Option2
!= ( none @ A ) )
=> ( ( the @ A @ Option )
= ( the @ A @ Option2 ) ) ) )
=> ( Option = Option2 ) ) ) ).
% option.expand
thf(fact_132_option_Osel,axiom,
! [A: $tType,X2: A] :
( ( the @ A @ ( some @ A @ X2 ) )
= X2 ) ).
% option.sel
thf(fact_133_option_Oexhaust__sel,axiom,
! [A: $tType,Option: option @ A] :
( ( Option
!= ( none @ A ) )
=> ( Option
= ( some @ A @ ( the @ A @ Option ) ) ) ) ).
% option.exhaust_sel
thf(fact_134_option_Osplit__sel__asm,axiom,
! [B: $tType,A: $tType,P: B > $o,F1: B,F22: A > B,Option: option @ A] :
( ( P @ ( case_option @ B @ A @ F1 @ F22 @ Option ) )
= ( ~ ( ( ( Option
= ( none @ A ) )
& ~ ( P @ F1 ) )
| ( ( Option
= ( some @ A @ ( the @ A @ Option ) ) )
& ~ ( P @ ( F22 @ ( the @ A @ Option ) ) ) ) ) ) ) ).
% option.split_sel_asm
thf(fact_135_option_Osplit__sel,axiom,
! [B: $tType,A: $tType,P: B > $o,F1: B,F22: A > B,Option: option @ A] :
( ( P @ ( case_option @ B @ A @ F1 @ F22 @ Option ) )
= ( ( ( Option
= ( none @ A ) )
=> ( P @ F1 ) )
& ( ( Option
= ( some @ A @ ( the @ A @ Option ) ) )
=> ( P @ ( F22 @ ( the @ A @ Option ) ) ) ) ) ) ).
% option.split_sel
thf(fact_136_option_Ocase__eq__if,axiom,
! [A: $tType,B: $tType] :
( ( case_option @ B @ A )
= ( ^ [F12: B,F23: A > B,Option3: option @ A] :
( if @ B
@ ( Option3
= ( none @ A ) )
@ F12
@ ( F23 @ ( the @ A @ Option3 ) ) ) ) ) ).
% option.case_eq_if
thf(fact_137_is__none__bind,axiom,
! [A: $tType,B: $tType,F: option @ B,G: B > ( option @ A )] :
( ( is_none @ A @ ( bind @ B @ A @ F @ G ) )
= ( ( is_none @ B @ F )
| ( is_none @ A @ ( G @ ( the @ B @ F ) ) ) ) ) ).
% is_none_bind
thf(fact_138_bind__runit,axiom,
! [A: $tType,X: option @ A] :
( ( bind @ A @ A @ X @ ( some @ A ) )
= X ) ).
% bind_runit
thf(fact_139_bind_Obind__lzero,axiom,
! [A: $tType,B: $tType,F: A > ( option @ B )] :
( ( bind @ A @ B @ ( none @ A ) @ F )
= ( none @ B ) ) ).
% bind.bind_lzero
thf(fact_140_bind__eq__Some__conv,axiom,
! [A: $tType,B: $tType,F: option @ B,G: B > ( option @ A ),X: A] :
( ( ( bind @ B @ A @ F @ G )
= ( some @ A @ X ) )
= ( ? [Y5: B] :
( ( F
= ( some @ B @ Y5 ) )
& ( ( G @ Y5 )
= ( some @ A @ X ) ) ) ) ) ).
% bind_eq_Some_conv
thf(fact_141_bind_Obind__lunit,axiom,
! [B: $tType,A: $tType,X: A,F: A > ( option @ B )] :
( ( bind @ A @ B @ ( some @ A @ X ) @ F )
= ( F @ X ) ) ).
% bind.bind_lunit
thf(fact_142_Option_Obind__cong,axiom,
! [B: $tType,A: $tType,X: option @ A,Y: option @ A,F: A > ( option @ B ),G: A > ( option @ B )] :
( ( X = Y )
=> ( ! [A3: A] :
( ( Y
= ( some @ A @ A3 ) )
=> ( ( F @ A3 )
= ( G @ A3 ) ) )
=> ( ( bind @ A @ B @ X @ F )
= ( bind @ A @ B @ Y @ G ) ) ) ) ).
% Option.bind_cong
thf(fact_143_bind__option__cong__code,axiom,
! [B: $tType,A: $tType,X: option @ A,Y: option @ A,F: A > ( option @ B )] :
( ( X = Y )
=> ( ( bind @ A @ B @ X @ F )
= ( bind @ A @ B @ Y @ F ) ) ) ).
% bind_option_cong_code
thf(fact_144_option_Osimps_I4_J,axiom,
! [A: $tType,B: $tType,F1: B,F22: A > B] :
( ( case_option @ B @ A @ F1 @ F22 @ ( none @ A ) )
= F1 ) ).
% option.simps(4)
thf(fact_145_option_Osimps_I5_J,axiom,
! [B: $tType,A: $tType,F1: B,F22: A > B,X2: A] :
( ( case_option @ B @ A @ F1 @ F22 @ ( some @ A @ X2 ) )
= ( F22 @ X2 ) ) ).
% option.simps(5)
thf(fact_146_bind__split,axiom,
! [A: $tType,B: $tType,P: ( option @ A ) > $o,M: option @ B,F: B > ( option @ A )] :
( ( P @ ( bind @ B @ A @ M @ F ) )
= ( ( ( M
= ( none @ B ) )
=> ( P @ ( none @ A ) ) )
& ! [V: B] :
( ( M
= ( some @ B @ V ) )
=> ( P @ ( F @ V ) ) ) ) ) ).
% bind_split
thf(fact_147_bind__split__asm,axiom,
! [A: $tType,B: $tType,P: ( option @ A ) > $o,M: option @ B,F: B > ( option @ A )] :
( ( P @ ( bind @ B @ A @ M @ F ) )
= ( ~ ( ( ( M
= ( none @ B ) )
& ~ ( P @ ( none @ A ) ) )
| ? [X4: B] :
( ( M
= ( some @ B @ X4 ) )
& ~ ( P @ ( F @ X4 ) ) ) ) ) ) ).
% bind_split_asm
thf(fact_148_bind__eq__None__conv,axiom,
! [B: $tType,A: $tType,A2: option @ B,F: B > ( option @ A )] :
( ( ( bind @ B @ A @ A2 @ F )
= ( none @ A ) )
= ( ( A2
= ( none @ B ) )
| ( ( F @ ( the @ B @ A2 ) )
= ( none @ A ) ) ) ) ).
% bind_eq_None_conv
thf(fact_149_alllsts__mono,axiom,
! [A: $tType,A4: set @ A,B4: set @ A] :
( ( ord_less_eq @ ( set @ A ) @ A4 @ B4 )
=> ( ord_less_eq @ ( set @ ( coinductive_llist @ A ) ) @ ( lList2435255213lllsts @ A @ A4 ) @ ( lList2435255213lllsts @ A @ B4 ) ) ) ).
% alllsts_mono
thf(fact_150_nat__le__iff,axiom,
! [X: int,N: nat] :
( ( ord_less_eq @ nat @ ( nat2 @ X ) @ N )
= ( ord_less_eq @ int @ X @ ( semiring_1_of_nat @ int @ N ) ) ) ).
% nat_le_iff
thf(fact_151_ll2f__LNil,axiom,
! [A: $tType,X: nat] :
( ( lList2228235758e_ll2f @ A @ ( coinductive_LNil @ A ) @ X )
= ( none @ A ) ) ).
% ll2f_LNil
thf(fact_152_option_Oset__sel,axiom,
! [A: $tType,A2: option @ A] :
( ( A2
!= ( none @ A ) )
=> ( member @ A @ ( the @ A @ A2 ) @ ( set_option @ A @ A2 ) ) ) ).
% option.set_sel
thf(fact_153_nat__int,axiom,
! [N: nat] :
( ( nat2 @ ( semiring_1_of_nat @ int @ N ) )
= N ) ).
% nat_int
thf(fact_154_elem__set,axiom,
! [A: $tType,X: A,Xo: option @ A] :
( ( member @ A @ X @ ( set_option @ A @ Xo ) )
= ( Xo
= ( some @ A @ X ) ) ) ).
% elem_set
thf(fact_155_poslsts__iff,axiom,
! [A: $tType,S: coinductive_llist @ A,A4: set @ A] :
( ( member @ ( coinductive_llist @ A ) @ S @ ( lList21148268032oslsts @ A @ A4 ) )
= ( ( member @ ( coinductive_llist @ A ) @ S @ ( lList2435255213lllsts @ A @ A4 ) )
& ( S
!= ( coinductive_LNil @ A ) ) ) ) ).
% poslsts_iff
thf(fact_156_ospec,axiom,
! [A: $tType,A4: option @ A,P: A > $o,X: A] :
( ! [X3: A] :
( ( member @ A @ X3 @ ( set_option @ A @ A4 ) )
=> ( P @ X3 ) )
=> ( ( A4
= ( some @ A @ X ) )
=> ( P @ X ) ) ) ).
% ospec
thf(fact_157_option_Oset__cases,axiom,
! [A: $tType,E: A,A2: option @ A] :
( ( member @ A @ E @ ( set_option @ A @ A2 ) )
=> ( A2
= ( some @ A @ E ) ) ) ).
% option.set_cases
thf(fact_158_option_Oset__intros,axiom,
! [A: $tType,A2: A] : ( member @ A @ A2 @ ( set_option @ A @ ( some @ A @ A2 ) ) ) ).
% option.set_intros
thf(fact_159_nat__if__cong,axiom,
! [P: $o,X: int,Y: int] :
( ( P
=> ( ( nat2 @ X )
= ( nat2 @ ( if @ int @ P @ X @ Y ) ) ) )
& ( ~ P
=> ( ( nat2 @ Y )
= ( nat2 @ ( if @ int @ P @ X @ Y ) ) ) ) ) ).
% nat_if_cong
thf(fact_160_alllsts_OLNil__all,axiom,
! [A: $tType,A4: set @ A] : ( member @ ( coinductive_llist @ A ) @ ( coinductive_LNil @ A ) @ ( lList2435255213lllsts @ A @ A4 ) ) ).
% alllsts.LNil_all
thf(fact_161_infsubsetall,axiom,
! [A: $tType,X: coinductive_llist @ A,A4: set @ A] :
( ( member @ ( coinductive_llist @ A ) @ X @ ( lList21612149805nflsts @ A @ A4 ) )
=> ( member @ ( coinductive_llist @ A ) @ X @ ( lList2435255213lllsts @ A @ A4 ) ) ) ).
% infsubsetall
thf(fact_162_bind__option__cong,axiom,
! [B: $tType,A: $tType,X: option @ A,Y: option @ A,F: A > ( option @ B ),G: A > ( option @ B )] :
( ( X = Y )
=> ( ! [Z3: A] :
( ( member @ A @ Z3 @ ( set_option @ A @ Y ) )
=> ( ( F @ Z3 )
= ( G @ Z3 ) ) )
=> ( ( bind @ A @ B @ X @ F )
= ( bind @ A @ B @ Y @ G ) ) ) ) ).
% bind_option_cong
thf(fact_163_option_Opred__cong,axiom,
! [A: $tType,X: option @ A,Ya: option @ A,P: A > $o,Pa: A > $o] :
( ( X = Ya )
=> ( ! [Z3: A] :
( ( member @ A @ Z3 @ ( set_option @ A @ Ya ) )
=> ( ( P @ Z3 )
= ( Pa @ Z3 ) ) )
=> ( ( pred_option @ A @ P @ X )
= ( pred_option @ A @ Pa @ Ya ) ) ) ) ).
% option.pred_cong
thf(fact_164_option_Opred__mono__strong,axiom,
! [A: $tType,P: A > $o,X: option @ A,Pa: A > $o] :
( ( pred_option @ A @ P @ X )
=> ( ! [Z3: A] :
( ( member @ A @ Z3 @ ( set_option @ A @ X ) )
=> ( ( P @ Z3 )
=> ( Pa @ Z3 ) ) )
=> ( pred_option @ A @ Pa @ X ) ) ) ).
% option.pred_mono_strong
thf(fact_165_nat__mono,axiom,
! [X: int,Y: int] :
( ( ord_less_eq @ int @ X @ Y )
=> ( ord_less_eq @ nat @ ( nat2 @ X ) @ ( nat2 @ Y ) ) ) ).
% nat_mono
thf(fact_166_lbutlast__LNil,axiom,
! [A: $tType] :
( ( lList2370560421utlast @ A @ ( coinductive_LNil @ A ) )
= ( coinductive_LNil @ A ) ) ).
% lbutlast_LNil
thf(fact_167_le__nat__iff,axiom,
! [K: int,N: nat] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ K )
=> ( ( ord_less_eq @ nat @ N @ ( nat2 @ K ) )
= ( ord_less_eq @ int @ ( semiring_1_of_nat @ int @ N ) @ K ) ) ) ).
% le_nat_iff
thf(fact_168_int__nat__eq,axiom,
! [Z: int] :
( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z )
=> ( ( semiring_1_of_nat @ int @ ( nat2 @ Z ) )
= Z ) )
& ( ~ ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z )
=> ( ( semiring_1_of_nat @ int @ ( nat2 @ Z ) )
= ( zero_zero @ int ) ) ) ) ).
% int_nat_eq
thf(fact_169_of__nat__eq__0__iff,axiom,
! [A: $tType] :
( ( semiring_char_0 @ A @ ( type2 @ A ) )
=> ! [M: nat] :
( ( ( semiring_1_of_nat @ A @ M )
= ( zero_zero @ A ) )
= ( M
= ( zero_zero @ nat ) ) ) ) ).
% of_nat_eq_0_iff
thf(fact_170_of__nat__0__eq__iff,axiom,
! [A: $tType] :
( ( semiring_char_0 @ A @ ( type2 @ A ) )
=> ! [N: nat] :
( ( ( zero_zero @ A )
= ( semiring_1_of_nat @ A @ N ) )
= ( ( zero_zero @ nat )
= N ) ) ) ).
% of_nat_0_eq_iff
thf(fact_171_of__nat__0,axiom,
! [A: $tType] :
( ( semiring_1 @ A @ ( type2 @ A ) )
=> ( ( semiring_1_of_nat @ A @ ( zero_zero @ nat ) )
= ( zero_zero @ A ) ) ) ).
% of_nat_0
thf(fact_172_of__nat__le__0__iff,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ! [M: nat] :
( ( ord_less_eq @ A @ ( semiring_1_of_nat @ A @ M ) @ ( zero_zero @ A ) )
= ( M
= ( zero_zero @ nat ) ) ) ) ).
% of_nat_le_0_iff
thf(fact_173_round__0,axiom,
! [A: $tType] :
( ( archim1727834104eiling @ A @ ( type2 @ A ) )
=> ( ( archimedean_round @ A @ ( zero_zero @ A ) )
= ( zero_zero @ int ) ) ) ).
% round_0
thf(fact_174_less__eq__int__code_I1_J,axiom,
ord_less_eq @ int @ ( zero_zero @ int ) @ ( zero_zero @ int ) ).
% less_eq_int_code(1)
thf(fact_175_Nat__Transfer_Otransfer__nat__int__function__closures_I5_J,axiom,
ord_less_eq @ int @ ( zero_zero @ int ) @ ( zero_zero @ int ) ).
% Nat_Transfer.transfer_nat_int_function_closures(5)
thf(fact_176_of__nat__0__le__iff,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ! [N: nat] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( semiring_1_of_nat @ A @ N ) ) ) ).
% of_nat_0_le_iff
thf(fact_177_of__nat__neq__0,axiom,
! [A: $tType] :
( ( semiring_char_0 @ A @ ( type2 @ A ) )
=> ! [N: nat] :
( ( semiring_1_of_nat @ A @ ( suc @ N ) )
!= ( zero_zero @ A ) ) ) ).
% of_nat_neq_0
thf(fact_178_transfer__morphism__nat__int,axiom,
nat_tr1645093318rphism @ int @ nat @ nat2 @ ( ord_less_eq @ int @ ( zero_zero @ int ) ) ).
% transfer_morphism_nat_int
thf(fact_179_transfer__nat__int__relations_I1_J,axiom,
! [X: int,Y: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X )
=> ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Y )
=> ( ( ( nat2 @ X )
= ( nat2 @ Y ) )
= ( X = Y ) ) ) ) ).
% transfer_nat_int_relations(1)
thf(fact_180_eq__nat__nat__iff,axiom,
! [Z: int,Z4: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z )
=> ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z4 )
=> ( ( ( nat2 @ Z )
= ( nat2 @ Z4 ) )
= ( Z = Z4 ) ) ) ) ).
% eq_nat_nat_iff
thf(fact_181_ex__nat,axiom,
( ( ^ [P2: nat > $o] :
? [X5: nat] : ( P2 @ X5 ) )
= ( ^ [P3: nat > $o] :
? [X4: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X4 )
& ( P3 @ ( nat2 @ X4 ) ) ) ) ) ).
% ex_nat
thf(fact_182_all__nat,axiom,
( ( ^ [P2: nat > $o] :
! [X5: nat] : ( P2 @ X5 ) )
= ( ^ [P3: nat > $o] :
! [X4: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X4 )
=> ( P3 @ ( nat2 @ X4 ) ) ) ) ) ).
% all_nat
thf(fact_183_zero__le__imp__eq__int,axiom,
! [K: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ K )
=> ? [N2: nat] :
( K
= ( semiring_1_of_nat @ int @ N2 ) ) ) ).
% zero_le_imp_eq_int
thf(fact_184_nonneg__int__cases,axiom,
! [K: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ K )
=> ~ ! [N2: nat] :
( K
!= ( semiring_1_of_nat @ int @ N2 ) ) ) ).
% nonneg_int_cases
thf(fact_185_nonneg__eq__int,axiom,
! [Z: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z )
=> ~ ! [M4: nat] :
( Z
!= ( semiring_1_of_nat @ int @ M4 ) ) ) ).
% nonneg_eq_int
thf(fact_186_Nat__Transfer_Otransfer__nat__int__function__closures_I9_J,axiom,
! [Z: nat] : ( ord_less_eq @ int @ ( zero_zero @ int ) @ ( semiring_1_of_nat @ int @ Z ) ) ).
% Nat_Transfer.transfer_nat_int_function_closures(9)
thf(fact_187_transfer__int__nat__quantifiers_I1_J,axiom,
! [P: int > $o] :
( ( ! [X4: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X4 )
=> ( P @ X4 ) ) )
= ( ! [X4: nat] : ( P @ ( semiring_1_of_nat @ int @ X4 ) ) ) ) ).
% transfer_int_nat_quantifiers(1)
thf(fact_188_transfer__int__nat__quantifiers_I2_J,axiom,
! [P: int > $o] :
( ( ? [X4: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X4 )
& ( P @ X4 ) ) )
= ( ? [X4: nat] : ( P @ ( semiring_1_of_nat @ int @ X4 ) ) ) ) ).
% transfer_int_nat_quantifiers(2)
thf(fact_189_transfer__nat__int__relations_I3_J,axiom,
! [X: int,Y: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X )
=> ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Y )
=> ( ( ord_less_eq @ nat @ ( nat2 @ X ) @ ( nat2 @ Y ) )
= ( ord_less_eq @ int @ X @ Y ) ) ) ) ).
% transfer_nat_int_relations(3)
thf(fact_190_nat__0__le,axiom,
! [Z: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z )
=> ( ( semiring_1_of_nat @ int @ ( nat2 @ Z ) )
= Z ) ) ).
% nat_0_le
thf(fact_191_int__eq__iff,axiom,
! [M: nat,Z: int] :
( ( ( semiring_1_of_nat @ int @ M )
= Z )
= ( ( M
= ( nat2 @ Z ) )
& ( ord_less_eq @ int @ ( zero_zero @ int ) @ Z ) ) ) ).
% int_eq_iff
thf(fact_192_le__zero__eq,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type2 @ A ) )
=> ! [N: A] :
( ( ord_less_eq @ A @ N @ ( zero_zero @ A ) )
= ( N
= ( zero_zero @ A ) ) ) ) ).
% le_zero_eq
thf(fact_193_imp__le__cong,axiom,
! [X: int,X6: int,P: $o,P4: $o] :
( ( X = X6 )
=> ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X6 )
=> ( P = P4 ) )
=> ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X )
=> P )
= ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X6 )
=> P4 ) ) ) ) ).
% imp_le_cong
thf(fact_194_conj__le__cong,axiom,
! [X: int,X6: int,P: $o,P4: $o] :
( ( X = X6 )
=> ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X6 )
=> ( P = P4 ) )
=> ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X )
& P )
= ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X6 )
& P4 ) ) ) ) ).
% conj_le_cong
thf(fact_195_le0,axiom,
! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).
% le0
thf(fact_196_nat__0,axiom,
( ( nat2 @ ( zero_zero @ int ) )
= ( zero_zero @ nat ) ) ).
% nat_0
thf(fact_197_nat__le__0,axiom,
! [Z: int] :
( ( ord_less_eq @ int @ Z @ ( zero_zero @ int ) )
=> ( ( nat2 @ Z )
= ( zero_zero @ nat ) ) ) ).
% nat_le_0
thf(fact_198_nat__0__iff,axiom,
! [I: int] :
( ( ( nat2 @ I )
= ( zero_zero @ nat ) )
= ( ord_less_eq @ int @ I @ ( zero_zero @ int ) ) ) ).
% nat_0_iff
thf(fact_199_nat_Odistinct_I1_J,axiom,
! [X2: nat] :
( ( zero_zero @ nat )
!= ( suc @ X2 ) ) ).
% nat.distinct(1)
thf(fact_200_old_Onat_Odistinct_I2_J,axiom,
! [Nat3: nat] :
( ( suc @ Nat3 )
!= ( zero_zero @ nat ) ) ).
% old.nat.distinct(2)
thf(fact_201_old_Onat_Odistinct_I1_J,axiom,
! [Nat2: nat] :
( ( zero_zero @ nat )
!= ( suc @ Nat2 ) ) ).
% old.nat.distinct(1)
thf(fact_202_nat_OdiscI,axiom,
! [Nat: nat,X2: nat] :
( ( Nat
= ( suc @ X2 ) )
=> ( Nat
!= ( zero_zero @ nat ) ) ) ).
% nat.discI
thf(fact_203_nat__induct,axiom,
! [P: nat > $o,N: nat] :
( ( P @ ( zero_zero @ nat ) )
=> ( ! [N2: nat] :
( ( P @ N2 )
=> ( P @ ( suc @ N2 ) ) )
=> ( P @ N ) ) ) ).
% nat_induct
thf(fact_204_diff__induct,axiom,
! [P: nat > nat > $o,M: nat,N: nat] :
( ! [X3: nat] : ( P @ X3 @ ( zero_zero @ nat ) )
=> ( ! [Y6: nat] : ( P @ ( zero_zero @ nat ) @ ( suc @ Y6 ) )
=> ( ! [X3: nat,Y6: nat] :
( ( P @ X3 @ Y6 )
=> ( P @ ( suc @ X3 ) @ ( suc @ Y6 ) ) )
=> ( P @ M @ N ) ) ) ) ).
% diff_induct
thf(fact_205_zero__induct,axiom,
! [P: nat > $o,K: nat] :
( ( P @ K )
=> ( ! [N2: nat] :
( ( P @ ( suc @ N2 ) )
=> ( P @ N2 ) )
=> ( P @ ( zero_zero @ nat ) ) ) ) ).
% zero_induct
thf(fact_206_Suc__neq__Zero,axiom,
! [M: nat] :
( ( suc @ M )
!= ( zero_zero @ nat ) ) ).
% Suc_neq_Zero
thf(fact_207_Zero__neq__Suc,axiom,
! [M: nat] :
( ( zero_zero @ nat )
!= ( suc @ M ) ) ).
% Zero_neq_Suc
thf(fact_208_Zero__not__Suc,axiom,
! [M: nat] :
( ( zero_zero @ nat )
!= ( suc @ M ) ) ).
% Zero_not_Suc
thf(fact_209_old_Onat_Oexhaust,axiom,
! [Y: nat] :
( ( Y
!= ( zero_zero @ nat ) )
=> ~ ! [Nat4: nat] :
( Y
!= ( suc @ Nat4 ) ) ) ).
% old.nat.exhaust
thf(fact_210_old_Onat_Oinducts,axiom,
! [P: nat > $o,Nat: nat] :
( ( P @ ( zero_zero @ nat ) )
=> ( ! [Nat4: nat] :
( ( P @ Nat4 )
=> ( P @ ( suc @ Nat4 ) ) )
=> ( P @ Nat ) ) ) ).
% old.nat.inducts
thf(fact_211_not0__implies__Suc,axiom,
! [N: nat] :
( ( N
!= ( zero_zero @ nat ) )
=> ? [M4: nat] :
( N
= ( suc @ M4 ) ) ) ).
% not0_implies_Suc
thf(fact_212_dependent__nat__choice,axiom,
! [A: $tType,P: nat > A > $o,Q: nat > A > A > $o] :
( ? [X1: A] : ( P @ ( zero_zero @ nat ) @ X1 )
=> ( ! [X3: A,N2: nat] :
( ( P @ N2 @ X3 )
=> ? [Y3: A] :
( ( P @ ( suc @ N2 ) @ Y3 )
& ( Q @ N2 @ X3 @ Y3 ) ) )
=> ? [F3: nat > A] :
! [N4: nat] :
( ( P @ N4 @ ( F3 @ N4 ) )
& ( Q @ N4 @ ( F3 @ N4 ) @ ( F3 @ ( suc @ N4 ) ) ) ) ) ) ).
% dependent_nat_choice
thf(fact_213_exists__least__lemma,axiom,
! [P: nat > $o] :
( ~ ( P @ ( zero_zero @ nat ) )
=> ( ? [X1: nat] : ( P @ X1 )
=> ? [N2: nat] :
( ~ ( P @ N2 )
& ( P @ ( suc @ N2 ) ) ) ) ) ).
% exists_least_lemma
thf(fact_214_le__0__eq,axiom,
! [N: nat] :
( ( ord_less_eq @ nat @ N @ ( zero_zero @ nat ) )
= ( N
= ( zero_zero @ nat ) ) ) ).
% le_0_eq
thf(fact_215_less__eq__nat_Osimps_I1_J,axiom,
! [N: nat] : ( ord_less_eq @ nat @ ( zero_zero @ nat ) @ N ) ).
% less_eq_nat.simps(1)
thf(fact_216_of__nat__aux_Osimps_I1_J,axiom,
! [A: $tType] :
( ( semiring_1 @ A @ ( type2 @ A ) )
=> ! [Inc: A > A,I: A] :
( ( semiri532925092at_aux @ A @ Inc @ ( zero_zero @ nat ) @ I )
= I ) ) ).
% of_nat_aux.simps(1)
thf(fact_217_transfer__int__nat__numerals_I1_J,axiom,
( ( zero_zero @ int )
= ( semiring_1_of_nat @ int @ ( zero_zero @ nat ) ) ) ).
% transfer_int_nat_numerals(1)
thf(fact_218_nat__eq__iff,axiom,
! [W: int,M: nat] :
( ( ( nat2 @ W )
= M )
= ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ W )
=> ( W
= ( semiring_1_of_nat @ int @ M ) ) )
& ( ~ ( ord_less_eq @ int @ ( zero_zero @ int ) @ W )
=> ( M
= ( zero_zero @ nat ) ) ) ) ) ).
% nat_eq_iff
thf(fact_219_nat__eq__iff2,axiom,
! [M: nat,W: int] :
( ( M
= ( nat2 @ W ) )
= ( ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ W )
=> ( W
= ( semiring_1_of_nat @ int @ M ) ) )
& ( ~ ( ord_less_eq @ int @ ( zero_zero @ int ) @ W )
=> ( M
= ( zero_zero @ nat ) ) ) ) ) ).
% nat_eq_iff2
thf(fact_220_zero__le,axiom,
! [A: $tType] :
( ( canoni770627133id_add @ A @ ( type2 @ A ) )
=> ! [X: A] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ X ) ) ).
% zero_le
thf(fact_221_option_Osize__gen_I1_J,axiom,
! [A: $tType,X: A > nat] :
( ( size_option @ A @ X @ ( none @ A ) )
= ( suc @ ( zero_zero @ nat ) ) ) ).
% option.size_gen(1)
thf(fact_222_LList2__Mirabelle__hamjzmohle_Ollength__LNil,axiom,
! [A: $tType] :
( ( lList21232602520length @ A @ ( coinductive_LNil @ A ) )
= ( zero_zero @ nat ) ) ).
% LList2_Mirabelle_hamjzmohle.llength_LNil
thf(fact_223_option_Osize_I4_J,axiom,
! [A: $tType,X2: A] :
( ( size_size @ ( option @ A ) @ ( some @ A @ X2 ) )
= ( suc @ ( zero_zero @ nat ) ) ) ).
% option.size(4)
thf(fact_224_option_Osize_I3_J,axiom,
! [A: $tType] :
( ( size_size @ ( option @ A ) @ ( none @ A ) )
= ( suc @ ( zero_zero @ nat ) ) ) ).
% option.size(3)
thf(fact_225_option_Osize__neq,axiom,
! [A: $tType,X: option @ A] :
( ( size_size @ ( option @ A ) @ X )
!= ( zero_zero @ nat ) ) ).
% option.size_neq
thf(fact_226_LList2__Mirabelle__hamjzmohle_Oltake_Osimps_I1_J,axiom,
! [A: $tType,L: coinductive_llist @ A] :
( ( lList22119844313_ltake @ A @ L @ ( zero_zero @ nat ) )
= ( coinductive_LNil @ A ) ) ).
% LList2_Mirabelle_hamjzmohle.ltake.simps(1)
thf(fact_227_list__decode_Ocases,axiom,
! [X: nat] :
( ( X
!= ( zero_zero @ nat ) )
=> ~ ! [N2: nat] :
( X
!= ( suc @ N2 ) ) ) ).
% list_decode.cases
thf(fact_228_le__numeral__extra_I3_J,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( zero_zero @ A ) ) ) ).
% le_numeral_extra(3)
thf(fact_229_int__eq__iff__numeral,axiom,
! [M: nat,V2: num] :
( ( ( semiring_1_of_nat @ int @ M )
= ( numeral_numeral @ int @ V2 ) )
= ( ( M
= ( nat2 @ ( numeral_numeral @ int @ V2 ) ) )
& ( ord_less_eq @ int @ ( zero_zero @ int ) @ ( numeral_numeral @ int @ V2 ) ) ) ) ).
% int_eq_iff_numeral
thf(fact_230_numeral__le__iff,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ! [M: num,N: num] :
( ( ord_less_eq @ A @ ( numeral_numeral @ A @ M ) @ ( numeral_numeral @ A @ N ) )
= ( ord_less_eq @ num @ M @ N ) ) ) ).
% numeral_le_iff
thf(fact_231_of__nat__numeral,axiom,
! [A: $tType] :
( ( semiring_1 @ A @ ( type2 @ A ) )
=> ! [N: num] :
( ( semiring_1_of_nat @ A @ ( numeral_numeral @ nat @ N ) )
= ( numeral_numeral @ A @ N ) ) ) ).
% of_nat_numeral
thf(fact_232_round__numeral,axiom,
! [A: $tType] :
( ( archim1727834104eiling @ A @ ( type2 @ A ) )
=> ! [N: num] :
( ( archimedean_round @ A @ ( numeral_numeral @ A @ N ) )
= ( numeral_numeral @ int @ N ) ) ) ).
% round_numeral
thf(fact_233_not__numeral__le__zero,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ! [N: num] :
~ ( ord_less_eq @ A @ ( numeral_numeral @ A @ N ) @ ( zero_zero @ A ) ) ) ).
% not_numeral_le_zero
thf(fact_234_zero__le__numeral,axiom,
! [A: $tType] :
( ( linordered_semidom @ A @ ( type2 @ A ) )
=> ! [N: num] : ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( numeral_numeral @ A @ N ) ) ) ).
% zero_le_numeral
thf(fact_235_option_Osize__gen_I2_J,axiom,
! [A: $tType,X: A > nat,X2: A] :
( ( size_option @ A @ X @ ( some @ A @ X2 ) )
= ( plus_plus @ nat @ ( X @ X2 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% option.size_gen(2)
thf(fact_236_Nat__Transfer_Otransfer__nat__int__function__closures_I3_J,axiom,
! [X: int,Y: int] :
( ( ord_less_eq @ int @ ( zero_zero @ int ) @ X )
=> ( ( ord_less_eq @ int @ ( zero_zero @ int ) @ Y )
=> ( ord_less_eq @ int @ ( zero_zero @ int ) @ ( nat_tsub @ X @ Y ) ) ) ) ).
% Nat_Transfer.transfer_nat_int_function_closures(3)
thf(fact_237_add__le__cancel__left,axiom,
! [A: $tType] :
( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
=> ! [C2: A,A2: A,B2: A] :
( ( ord_less_eq @ A @ ( plus_plus @ A @ C2 @ A2 ) @ ( plus_plus @ A @ C2 @ B2 ) )
= ( ord_less_eq @ A @ A2 @ B2 ) ) ) ).
% add_le_cancel_left
thf(fact_238_add__le__cancel__right,axiom,
! [A: $tType] :
( ( ordere236663937imp_le @ A @ ( type2 @ A ) )
=> ! [A2: A,C2: A,B2: A] :
( ( ord_less_eq @ A @ ( plus_plus @ A @ A2 @ C2 ) @ ( plus_plus @ A @ B2 @ C2 ) )
= ( ord_less_eq @ A @ A2 @ B2 ) ) ) ).
% add_le_cancel_right
thf(fact_239_Nat_Oadd__0__right,axiom,
! [M: nat] :
( ( plus_plus @ nat @ M @ ( zero_zero @ nat ) )
= M ) ).
% Nat.add_0_right
thf(fact_240_add__is__0,axiom,
! [M: nat,N: nat] :
( ( ( plus_plus @ nat @ M @ N )
= ( zero_zero @ nat ) )
= ( ( M
= ( zero_zero @ nat ) )
& ( N
= ( zero_zero @ nat ) ) ) ) ).
% add_is_0
thf(fact_241_add__Suc__right,axiom,
! [M: nat,N: nat] :
( ( plus_plus @ nat @ M @ ( suc @ N ) )
= ( suc @ ( plus_plus @ nat @ M @ N ) ) ) ).
% add_Suc_right
thf(fact_242_nat__add__left__cancel__le,axiom,
! [K: nat,M: nat,N: nat] :
( ( ord_less_eq @ nat @ ( plus_plus @ nat @ K @ M ) @ ( plus_plus @ nat @ K @ N ) )
= ( ord_less_eq @ nat @ M @ N ) ) ).
% nat_add_left_cancel_le
thf(fact_243_add__le__same__cancel1,axiom,
! [A: $tType] :
( ( ordere516151231imp_le @ A @ ( type2 @ A ) )
=> ! [B2: A,A2: A] :
( ( ord_less_eq @ A @ ( plus_plus @ A @ B2 @ A2 ) @ B2 )
= ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).
% add_le_same_cancel1
thf(fact_244_add__le__same__cancel2,axiom,
! [A: $tType] :
( ( ordere516151231imp_le @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ ( plus_plus @ A @ A2 @ B2 ) @ B2 )
= ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).
% add_le_same_cancel2
thf(fact_245_le__add__same__cancel1,axiom,
! [A: $tType] :
( ( ordere516151231imp_le @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ A2 @ ( plus_plus @ A @ A2 @ B2 ) )
= ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) ) ).
% le_add_same_cancel1
thf(fact_246_le__add__same__cancel2,axiom,
! [A: $tType] :
( ( ordere516151231imp_le @ A @ ( type2 @ A ) )
=> ! [A2: A,B2: A] :
( ( ord_less_eq @ A @ A2 @ ( plus_plus @ A @ B2 @ A2 ) )
= ( ord_less_eq @ A @ ( zero_zero @ A ) @ B2 ) ) ) ).
% le_add_same_cancel2
thf(fact_247_double__add__le__zero__iff__single__add__le__zero,axiom,
! [A: $tType] :
( ( linord219039673up_add @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( ord_less_eq @ A @ ( plus_plus @ A @ A2 @ A2 ) @ ( zero_zero @ A ) )
= ( ord_less_eq @ A @ A2 @ ( zero_zero @ A ) ) ) ) ).
% double_add_le_zero_iff_single_add_le_zero
thf(fact_248_zero__le__double__add__iff__zero__le__single__add,axiom,
! [A: $tType] :
( ( linord219039673up_add @ A @ ( type2 @ A ) )
=> ! [A2: A] :
( ( ord_less_eq @ A @ ( zero_zero @ A ) @ ( plus_plus @ A @ A2 @ A2 ) )
= ( ord_less_eq @ A @ ( zero_zero @ A ) @ A2 ) ) ) ).
% zero_le_double_add_iff_zero_le_single_add
thf(fact_249_of__nat__add,axiom,
! [A: $tType] :
( ( semiring_1 @ A @ ( type2 @ A ) )
=> ! [M: nat,N: nat] :
( ( semiring_1_of_nat @ A @ ( plus_plus @ nat @ M @ N ) )
= ( plus_plus @ A @ ( semiring_1_of_nat @ A @ M ) @ ( semiring_1_of_nat @ A @ N ) ) ) ) ).
% of_nat_add
thf(fact_250_nat__numeral,axiom,
! [K: num] :
( ( nat2 @ ( numeral_numeral @ int @ K ) )
= ( numeral_numeral @ nat @ K ) ) ).
% nat_numeral
thf(fact_251_add__is__1,axiom,
! [M: nat,N: nat] :
( ( ( plus_plus @ nat @ M @ N )
= ( suc @ ( zero_zero @ nat ) ) )
= ( ( ( M
= ( suc @ ( zero_zero @ nat ) ) )
& ( N
= ( zero_zero @ nat ) ) )
| ( ( M
= ( zero_zero @ nat ) )
& ( N
= ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).
% add_is_1
thf(fact_252_one__is__add,axiom,
! [M: nat,N: nat] :
( ( ( suc @ ( zero_zero @ nat ) )
= ( plus_plus @ nat @ M @ N ) )
= ( ( ( M
= ( suc @ ( zero_zero @ nat ) ) )
& ( N
= ( zero_zero @ nat ) ) )
| ( ( M
= ( zero_zero @ nat ) )
& ( N
= ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).
% one_is_add
%----Type constructors (37)
thf(tcon_fun___Complete__Lattices_Ocomplete__lattice,axiom,
! [A6: $tType,A7: $tType] :
( ( comple187826305attice @ A7 @ ( type2 @ A7 ) )
=> ( comple187826305attice @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).
thf(tcon_fun___Orderings_Opreorder,axiom,
! [A6: $tType,A7: $tType] :
( ( preorder @ A7 @ ( type2 @ A7 ) )
=> ( preorder @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).
thf(tcon_fun___Orderings_Oorder,axiom,
! [A6: $tType,A7: $tType] :
( ( order @ A7 @ ( type2 @ A7 ) )
=> ( order @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).
thf(tcon_fun___Orderings_Oord,axiom,
! [A6: $tType,A7: $tType] :
( ( ord @ A7 @ ( type2 @ A7 ) )
=> ( ord @ ( A6 > A7 ) @ ( type2 @ ( A6 > A7 ) ) ) ) ).
thf(tcon_Int_Oint___Groups_Oordered__ab__semigroup__monoid__add__imp__le,axiom,
ordere516151231imp_le @ int @ ( type2 @ int ) ).
thf(tcon_Int_Oint___Groups_Oordered__ab__semigroup__add__imp__le,axiom,
ordere236663937imp_le @ int @ ( type2 @ int ) ).
thf(tcon_Int_Oint___Groups_Olinordered__ab__group__add,axiom,
linord219039673up_add @ int @ ( type2 @ int ) ).
thf(tcon_Int_Oint___Rings_Olinordered__semidom,axiom,
linordered_semidom @ int @ ( type2 @ int ) ).
thf(tcon_Int_Oint___Nat_Osemiring__char__0,axiom,
semiring_char_0 @ int @ ( type2 @ int ) ).
thf(tcon_Int_Oint___Orderings_Opreorder_1,axiom,
preorder @ int @ ( type2 @ int ) ).
thf(tcon_Int_Oint___Orderings_Olinorder,axiom,
linorder @ int @ ( type2 @ int ) ).
thf(tcon_Int_Oint___Rings_Osemiring__1,axiom,
semiring_1 @ int @ ( type2 @ int ) ).
thf(tcon_Int_Oint___Orderings_Oorder_2,axiom,
order @ int @ ( type2 @ int ) ).
thf(tcon_Int_Oint___Orderings_Oord_3,axiom,
ord @ int @ ( type2 @ int ) ).
thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__monoid__add__imp__le_4,axiom,
ordere516151231imp_le @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__add__imp__le_5,axiom,
ordere236663937imp_le @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
canoni770627133id_add @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Olinordered__semidom_6,axiom,
linordered_semidom @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Nat_Osemiring__char__0_7,axiom,
semiring_char_0 @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Opreorder_8,axiom,
preorder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Olinorder_9,axiom,
linorder @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Rings_Osemiring__1_10,axiom,
semiring_1 @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Oorder_11,axiom,
order @ nat @ ( type2 @ nat ) ).
thf(tcon_Nat_Onat___Orderings_Oord_12,axiom,
ord @ nat @ ( type2 @ nat ) ).
thf(tcon_Num_Onum___Orderings_Opreorder_13,axiom,
preorder @ num @ ( type2 @ num ) ).
thf(tcon_Num_Onum___Orderings_Olinorder_14,axiom,
linorder @ num @ ( type2 @ num ) ).
thf(tcon_Num_Onum___Orderings_Oorder_15,axiom,
order @ num @ ( type2 @ num ) ).
thf(tcon_Num_Onum___Orderings_Oord_16,axiom,
ord @ num @ ( type2 @ num ) ).
thf(tcon_Set_Oset___Complete__Lattices_Ocomplete__lattice_17,axiom,
! [A6: $tType] : ( comple187826305attice @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Opreorder_18,axiom,
! [A6: $tType] : ( preorder @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Oorder_19,axiom,
! [A6: $tType] : ( order @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).
thf(tcon_Set_Oset___Orderings_Oord_20,axiom,
! [A6: $tType] : ( ord @ ( set @ A6 ) @ ( type2 @ ( set @ A6 ) ) ) ).
thf(tcon_HOL_Obool___Complete__Lattices_Ocomplete__lattice_21,axiom,
comple187826305attice @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Opreorder_22,axiom,
preorder @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Olinorder_23,axiom,
linorder @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Oorder_24,axiom,
order @ $o @ ( type2 @ $o ) ).
thf(tcon_HOL_Obool___Orderings_Oord_25,axiom,
ord @ $o @ ( type2 @ $o ) ).
%----Helper facts (3)
thf(help_If_3_1_T,axiom,
! [P: $o] :
( ( P = $true )
| ( P = $false ) ) ).
thf(help_If_2_1_T,axiom,
! [A: $tType,X: A,Y: A] :
( ( if @ A @ $false @ X @ Y )
= Y ) ).
thf(help_If_1_1_T,axiom,
! [A: $tType,X: A,Y: A] :
( ( if @ A @ $true @ X @ Y )
= X ) ).
%----Conjectures (1)
thf(conj_0,conjecture,
q ).
%------------------------------------------------------------------------------